package org.ytor.core.sysapi.permission.req;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.ytor.common.util.bean.Beans;
import org.ytor.core.model.BaseReq;
import org.ytor.core.sysapi.permission.model.SysPermission;

/**
 * created by System on 2025年5月22日 20:45:43
 * <br/>
 * SysPermissionReq表实体类
 * <br/>
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "资源表")
public class SysPermissionReq extends BaseReq<SysPermission, String> {

    private String id;

    /**
     * 删除标记，0正常，1删除
     */
    @Schema(description = "删除标记，0正常，1删除")
    private Boolean delFlag;

    /**
     * 父资源id
     */
    @Schema(description = "父资源id")
    private String pid;

    /**
     * 资源名称
     */
    @Schema(description = "资源名称")
    private String permissionName;

    /**
     * 资源唯一编码
     */
    @Schema(description = "资源唯一编码")
    private String permissionCode;

    /**
     * 资源类型，1-接口、2-页面、3-页面元素
     */
    @Schema(description = "资源类型，1-接口、2-页面、3-页面元素")
    private Integer permissionType;

    /**
     * 地址（页面路由地址或者接口地址）
     */
    @Schema(description = "地址（页面路由地址或者接口地址）")
    private String path;

    /**
     * 前端组件地址（type为页面时生效）
     */
    @Schema(description = "前端组件地址（type为页面时生效）")
    private String component;

    /**
     * 图标
     */
    @Schema(description = "图标")
    private String icon;

    /**
     * 是否可见
     */
    private Boolean visible;

    /**
     * 排序
     */
    private Integer sort;

    @Override
    public SysPermission toEntity() {
        return Beans.copyProperties(this, SysPermission.class);
    }
}